using System;
using System.Collections.Generic;
using MvcContrib.UI.Grid;
using MvcContrib.UI.Grid.Syntax;

namespace etcetera.Mvc.UI.Grid
{
    public interface IGridEx<T> : IGrid<T> where T : class
    {
        new IGridEx<T> Empty(string emptyText);
        IGridEx<T> Titled(string title);
        IGridEx<T> WithId(string gridId);
        IGridEx<T> WithToolStripId(string id);
        IGridEx<T> WithToggle(bool withToggle);
        IGridEx<T> WithToggle(bool withToggle, bool startOpen);
        IGridEx<T> SortQueryStringName(string sortQueryStringName);
        IGridEx<T> SortOrderQueryStringName(string sortOrderQueryStringName);
        new void Render();
        new IGridEx<T> RenderUsing(IGridRenderer<T> renderer);
        new IGridEx<T> Columns(Action<ColumnBuilder<T>> columnBuilder);
        IGridEx<T> ColWidth(params string[] widths);
        IGridEx<T> HeaderAttributes(IDictionary<string, object> headerAttributes);
        new IGridEx<T> Attributes(IDictionary<string, object> attributes);
    }

    
}